<?php


class Cms_Model_Placeholders extends WSB_Db_Rowset
{

	/**
	 * @param integer $id
	 * @return boolean
	 */
	public function isEditable($id)
	{
		foreach($this->_data AS $data) {
			if($data['id'] == $id) {
				return empty($data['not_editable']);
			}

		}
		return false;
	}

	/**
	 * Sortiert das Rowset anhand der im Array definierten Reihenfolge der Ids.
	 * Die restlichen IDs werden unsortiert hinten angehaengt.
	 *
	 * @param array $ids
	 */
	public function sortByIds(array $ids)
	{
		$data = array();
		foreach($ids AS $id) {
			$index = $this->_getIndexForId($id);
			if($index >= 0) {
				$data[] = $this->_data[$index];
				unset($this->_data[$index]);
			}
		}
		$this->_data = array_merge($data, $this->_data);
	}

	/**
	 * Gib den Index zurueck, bei dem die ID gleich dem Paramter $id ist.
	 * Falls kein Index gefunden wird, gib -1 zurueck.
	 *
	 * @param integer $id
	 * @return integer
	 */
	private function _getIndexForId($id)
	{
		foreach($this->_data AS $index=>$data) {
			if($data['id'] == $id) {
				return $index;
			}
		}
		return -1;
	}

}
